{\rtf1\mac\ansicpg10000\cocoartf102
{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
{\colortbl;\red255\green255\blue255;}
\margl1440\margr1440\vieww9000\viewh9000\viewkind0
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural

\f0\fs24 \cf0 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !!\
!\
!  Fluke 9010A Code Generator\
!  Process copyright QuarterArcade.com, LLC \
!\
! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !!\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
!! SETUP CODE \
!! Purpose: To set the pod include file and the pod being used, as well as\
!!		relevant setup conditions.\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
setup\
	include "z80.pod"\
	POD z80\
\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
!! SUB: Main\
!! PURPOSE: Start the process. Introduce the program to refresh the \
!!   operator's memory, and enter into the main menu.\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
program Main\
\
declarations\
	!! Intro\
	execute QuarterArcadeLogo\
	!! Short delay to introduce program\
	dpy OMEGA RACE - OMEGRACE Z80A\
	aux OMEGA RACE - OMEGRACE Z80A\
	REG8 = 10\
	execute DelayTics8\
\
	execute MainMenu\
	\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
!! SUB: MainMenu\
!! PURPOSE: Give the user options to select from in menu format.\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
program MainMenu\
\
declarations\
	assign REGB to Input\
\
MenuLp:\
	Input = 0\
	aux _\
	aux _\
	aux MAIN MENU\
	aux ____1=RAMMenu\
	aux ____2=ROMMenu\
	aux _\
	aux _\
	aux MENU COMMAND>\
	dpy CMD> 1-2\
	execute GetKey\
\
	if Input = 1 goto Menu1    !! hooks to RAMMenu\
	if Input = 2 goto Menu2    !! hooks to ROMMenu\
	goto  MenuLp\
\
Menu1:	!! RAMMenu\
	execute RAMMenu\
	dpy #\
	dpy TEST DONE\
	aux TEST DONE\
	execute GetKey\
	goto MenuLp\
\
Menu2:	!! ROMMenu\
	execute ROMMenu\
	dpy #\
	dpy TEST DONE\
	aux TEST DONE\
	execute GetKey\
	goto MenuLp\
\
\
	\
MenuF:\
\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
!! SUB: RAMMenu\
!! PURPOSE: Give the user options to select from in menu format.\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
program RAMMenu\
\
declarations\
	assign REGB to Input\
\
MenuLp:\
	Input = 0\
	aux _\
	aux _\
	aux RAM MENU\
	aux ____1=RAM1\
	aux ____2=RAM2\
	aux ____3=SndRAM1\
	aux ____E=TEST ALL \
	aux _\
	aux ____F=RETURN \
	aux _\
	aux MENU COMMAND>\
	dpy CMD> 1-3,E=ALL,F=UP\
	execute GetKey\
\
	if Input = 1 goto Menu1    !! hooks to RAM1\
	if Input = 2 goto Menu2    !! hooks to RAM2\
	if Input = 3 goto Menu3    !! hooks to SndRAM1\
	if Input = E goto MenuE    !! hooks to all tests\
	goto  MenuLp\
\
Menu1:	!! RAM1\
	execute RAM1\
	dpy #\
	dpy TEST DONE\
	aux TEST DONE\
	execute GetKey\
	goto MenuLp\
\
Menu2:	!! RAM2\
	execute RAM2\
	dpy #\
	dpy TEST DONE\
	aux TEST DONE\
	execute GetKey\
	goto MenuLp\
\
Menu3:	!! SndRAM1\
	execute SndRAM1\
	dpy #\
	dpy TEST DONE\
	aux TEST DONE\
	execute GetKey\
	goto MenuLp\
\
MenuE:	!! All tests\
	execute RAM1\
	execute RAM2\
	execute SndRAM1\
	dpy #\
	dpy TESTS DONE\
	aux TESTS DONE\
	execute GetKey\
	goto MenuLp\
\
\
	\
MenuF:\
\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
!! Program: RAM1\
!! Purpose: Tests one address range in RAM mode. $4000-$4BFF\
!!	Program RAM.\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
program RAM1\
\
	dpy RAM test @ 4000-4BFF\
	aux RAM test @ 4000-4BFF\
	\
	RAM short @ 4000-4BFF\
\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
!! Program: RAM2\
!! Purpose: Tests one address range in RAM mode. $8000-$8FFF\
!!	Vector RAM.\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
program RAM2\
\
	dpy RAM test @ 8000-8FFF\
	aux RAM test @ 8000-8FFF\
	\
	RAM short @ 8000-8FFF\
\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
!! Program: SndRAM1\
!! Purpose: Tests one address range in RAM mode. $1000-$13FF\
!!	Sound Board RAM\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
program SndRAM1\
\
	dpy RAM test @ 1000-13FF\
	aux RAM test @ 1000-13FF\
	\
	RAM short @ 1000-13FF\
\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
!! SUB: ROMMenu\
!! PURPOSE: Give the user options to select from in menu format.\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
program ROMMenu\
\
declarations\
	assign REGB to Input\
\
MenuLp:\
	Input = 0\
	aux _\
	aux _\
	aux ROM MENU\
	aux ____1=soundk5\
	aux ____2=ProgramROM\
	aux ____3=Vector_ROM_E1\
	aux ____4=Vector_ROM_F1\
	aux ____E=TEST ALL \
	aux _\
	aux ____F=RETURN \
	aux _\
	aux MENU COMMAND>\
	dpy CMD> 1-4,E=ALL,F=UP\
	execute GetKey\
\
	if Input = 1 goto Menu1    !! hooks to soundk5\
	if Input = 2 goto Menu2    !! hooks to ProgramROM\
	if Input = 3 goto Menu3    !! hooks to Vector_ROM_E1\
	if Input = 4 goto Menu4    !! hooks to Vector_ROM_F1\
	if Input = E goto MenuE    !! hooks to all tests\
	goto  MenuLp\
\
Menu1:	!! soundk5\
	execute soundk5\
	dpy #\
	dpy TEST DONE\
	aux TEST DONE\
	execute GetKey\
	goto MenuLp\
\
Menu2:	!! ProgramROM\
	execute ProgramROM\
	dpy #\
	dpy TEST DONE\
	aux TEST DONE\
	execute GetKey\
	goto MenuLp\
\
Menu3:	!! Vector_ROM_E1\
	execute Vector_ROM_E1\
	dpy #\
	dpy TEST DONE\
	aux TEST DONE\
	execute GetKey\
	goto MenuLp\
\
Menu4:	!! Vector_ROM_F1\
	execute Vector_ROM_F1\
	dpy #\
	dpy TEST DONE\
	aux TEST DONE\
	execute GetKey\
	goto MenuLp\
\
MenuE:	!! All tests\
	execute soundk5\
	execute ProgramROM\
	execute Vector_ROM_E1\
	execute Vector_ROM_F1\
	dpy #\
	dpy TESTS DONE\
	aux TESTS DONE\
	execute GetKey\
	goto MenuLp\
\
\
	\
MenuF:\
\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
!! Program: soundk5\
!! Purpose: Tests one ROM. $0-$7FF\
!!	Generated ROM test\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
program soundk5\
\
	dpy ROM test @ 0-7FF sig 7D72\
	aux ROM test @ 0-7FF sig 7D72\
	\
	ROM test @ 0-7FF sig 7D72\
\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
!! Program: ProgramROM\
!! Purpose: Tests one ROM. $0-$3FFF\
!!	Total ROM Signature\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
program ProgramROM\
\
	dpy ROM test @ 0-3FFF sig F04\
	aux ROM test @ 0-3FFF sig F04\
	\
	ROM test @ 0-3FFF sig F04\
\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
!! Program: Vector_ROM_E1\
!! Purpose: Tests one ROM. $9000-$97FF\
!!	Vector ROM 1\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
program Vector_ROM_E1\
\
	dpy ROM test @ 9000-97FF sig 2B6F\
	aux ROM test @ 9000-97FF sig 2B6F\
	\
	ROM test @ 9000-97FF sig 2B6F\
\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
!! Program: Vector_ROM_F1\
!! Purpose: Tests one ROM. $9800-$9FFF\
!!	Vector ROM 2\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
program Vector_ROM_F1\
\
	dpy ROM test @ 9800-9FFF sig A0F1\
	aux ROM test @ 9800-9FFF sig A0F1\
	\
	ROM test @ 9800-9FFF sig A0F1\
\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
!! Program: KeyEnable\
!! Purpose: Wait for a key to be pressed\
!! Inputs: none\
!! Output: Reg B = 40; toggles the enabling of asynchronous keyboard interrupt\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
program KeyEnable\
	REGB = 40                   !Initialize reg B\
	dpy-+%B                     !Enable key interrupt to reg B\
\
\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
!! Program: GetKey\
!! Purpose: Wait here until a key is pressed\
!! Inputs: none\
!! Calls to: KeyEnable\
!! Outputs: Register B = the value of a key pressed (0-3F)\
!! Based on program found in the GFI example from Fluke's documentation\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
program GetKey\
	execute KeyEnable           ! Enable interrupt\
1:	LABEL 1    \
	if REGB = 40 goto 1         ! Loop till key pressed (<40)\
	\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
!! Program: DelayTics8\
!! Purpose: Delays the number of tics specified by REG8\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
program DelayTics8\
\
	REG1 = REG8\
dloop:\
	dec REG1\
	if REG1 > 0 goto dloop\
	\
\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
!! Program: QuarterArcadeLogo\
!! Purpose: I'm a geek. \
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\
program QuarterArcadeLogo\
\
	dpy TECH.QUARTERARCADE.COM\
	aux TECH.QUARTERARCADE.COM\
	REG8 = 10\
	execute DelayTics8	}